package com.qding.park.common.core.redis;

import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.qding.park.common.utils.json.FastJsonUtils;

public class SerializeUtils {

	private static final Log _log = LogFactory.getLog(SerializeUtils.class);

	/**
	 * @Description (序列化对象)
	 * @param object
	 * @return 返回json字符串
	 */
	public static String serialize(Object object) {

		if (object == null)
			return null;

		return FastJsonUtils.toJSONString(object);
	}

//	public static <T> T serialize(String text, Class<T> clazz) {
//
//		if (StringUtils.isBlank(text)) {
//			return null;
//		}
//
//		return FastJsonUtils.toj
//
//	}
	
	/**
	 * @Description (返序列化)
	 * @param text  json字符串
	 * @param clazz  类型
	 * @return
	 */
	public static <T> T unSerialize(String text, Class<T> clazz) {

		if (StringUtils.isBlank(text)) {
			return null;
		}

		return FastJsonUtils.toBean(text, clazz);

	}

	/**
	 * @Description (反序列化)
	 * @param text
	 * @return
	 */
	public static Object unSerialize(String text) {

		return text;

	}
	//
	// /**
	// * 序列化
	// *
	// * @param object
	// * @return
	// * @throws Exception
	// */
	// public static byte[] serialize(Object object) throws Exception {
	// if(object == null) return null;
	// ObjectOutputStream oos = null;
	// ByteArrayOutputStream baos = null;
	// try {
	// // 序列化
	// baos = new ByteArrayOutputStream();
	// oos = new ObjectOutputStream(baos);
	// oos.writeObject(object);
	// byte[] bytes = baos.toByteArray();
	// return bytes;
	// } catch (Exception e) {
	// _log.error(e);
	// throw e;
	// }
	// }
	//
	// /**
	// * 反序列化
	// *
	// * @param bytes
	// * @return
	// * @throws Exception
	// */
	// public static Object unSerialize(byte[] bytes) throws Exception {
	// if(bytes == null) return null;
	// ByteArrayInputStream bais = null;
	// try {
	// // 反序列化
	// bais = new ByteArrayInputStream(bytes);
	// ObjectInputStream ois = new ObjectInputStream(bais);
	// return ois.readObject();
	// } catch (Exception e) {
	// _log.error(e);
	// throw e;
	// }
	// }
}
